草庐IT

C++ 空类或 typedef

全部标签

python - TypeError:exceptions 必须是旧式类或派生自 BaseException,而不是 str

以下是我的代码:test='abc'ifTrue:raisetest+'def'当我运行它时,它给了我TypeErrorTypeError:exceptionsmustbeold-styleclassesorderivedfromBaseException,notstr那么test应该是什么样的类型呢? 最佳答案 raise的唯一参数表示要引发的异常。这必须是异常实例或异常类(派生自Exception的类)。试试这个:test='abc'ifTrue:raiseException(test+'def')

java - 为什么类或接口(interface)不能接收私有(private)或 protected 访问修饰符?

我正在阅读一些Java文本,文本说我们只能为类和接口(interface)应用public或default访问修饰符。因此,如果我们声明如下是编译错误:privateclassA{}或protectedclassA{}我只是好奇为什么一个类或接口(interface)不能接收private或protected访问修饰符? 最佳答案 private表示“仅在封闭类中可见”。protected表示“仅在封闭类和任何子类中可见,并且在封闭类的包中的任何位置可见”。因此,private在应用于顶级类时没有任何意义;protected定义的第

java - java中的类或方法别名

我的java类和方法名很长LONGGGGGGGGGGGGGGGClass.longggggggggggggggggggggggggMethod();我想给它起别名g.m();在另一个类中这个可以吗? 最佳答案 没有。用你更喜欢的名字将它包装在一个方法中。 关于java-java中的类或方法别名,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2204157/

java - 如何禁用类或整个包的记录器?

我正在使用ApacheCommonsLogging™.现在我想使用SimpleLog实现,但是当我更改级别时,库中的记录器就出来了。我希望它关闭它们。是否有一种简单的方法可以更改整个包的日志级别(Log4j可以这样做)?我试过设置org.apache.commons.logging.simplelog.log.foo=fatal在属性文件中禁用(设置为致命是可以的)foo记录器,但它不起作用(foo是出现在输出中的记录器的名称:[INFO]foo-消息)。 最佳答案 在Log4j中,您可以为通过字符串标识的指定包、类或记录器指定日志

android - 如何在 kotlin 中使用 Android Support typedef 注解?

我开发Android应用,经常使用注解作为编译时参数检查,主要是android的supportannotations.java代码示例:publicclassTest{@IntDef({Speed.SLOW,Speed.NORMAL,Speed.FAST})public@interfaceSpeed{publicstaticfinalintSLOW=0;publicstaticfinalintNORMAL=1;publicstaticfinalintFAST=2;}@Speedprivateintspeed;publicvoidsetSpeed(@Speedintspeed){this

c++ - 如何在编译时检查两种类型是否相同(如果它与 Boost strong typedef 一起使用则加分)

我想知道是否可以在编译时检查两种类型是否相同。我想出的是(idk如果它有效,因为它感觉hackish和IDK标准那么好,所以IDK在测试时要寻找什么)。#includeBOOST_STRONG_TYPEDEF(double,cm);BOOST_STRONG_TYPEDEF(double,inch);templatestaticconstexprvoid__help(){}templateclassAreSameType{public:constexproperatorbool(){return&__help==&__help;};};用法:intmain(){static_assert

c++ - `typedef typename Foo<T>::Bar Bar'的模板声明

我在声明模板类型时遇到了很大的困难,如下所示。#include#includeusingnamespacestd;templateclassFoo{typedefTBar;};templatetypedeftypenameFoo::BarBar;intmain(intargc,char*argv[]){Barbar;Foofoo;system("PAUSE");returnEXIT_SUCCESS;}我得到错误templatedeclarationof`typedeftypenameFoo::BarBar'关于线路templatetypedeftypenameFoo::BarBar;我

c++ - 函数体内的 typedef 是一种不好的编程习惯吗?

我有一些类C并希望将其实例和方法的地址传递给测试函数Test_C_Foo1()中的某个仿函数。Functor是一个模板类,我必须提供类方法的类型(MEMFN1)作为其模板参数之一。我必须在某处定义MEMFN1类型,但不想更改C.h并且不想用它污染全局命名空间。我决定尽可能将typedef本地化,所以把它放在一个测试函数中——在MEMFN1实际使用的范围内。在函数体内使用typedef是一种好习惯吗?标准允许在函数体内使用typedef,仅在以下特定情况下限制它:Thetypedefspecifiershallnotbecombinedinadecl-specifier-seqwitha

c++ - 可以使用 C++11 decltype 为现有函数的函数指针创建 typedef 吗?

给定structA{intfoo(doublea,std::string&b)const;};我可以像这样创建一个成员函数指针:typedefint(A::*PFN_FOO)(double,std::string&)const;很简单,只是如果A::foo的签名发生变化,则需要更新PFN_FOO。由于C++11引入了decltype,是否可以用来自动推导出签名并创建typedef? 最佳答案 是的,当然:typedefdecltype(&A::foo)PFN_FOO;您也可以通过using定义类型别名关键字(感谢MatthieuM.

c++ - typedef 声明中的 typedef-name 是可选的吗?

当我看到以下代码在g++-4.2中编译时没有错误或警告时,我感到非常惊讶:typedefenumtest{one};我的假设是,如果您使用typedef关键字,它将需要一个额外的标识符,如:typedefenumtest{one}test;如前所述,g++-4.2甚至在没有警告的情况下接受它。Clang++3.0警告“warning:typedefrequiresaname”,类似地Comeau警告“warning:declarationrequiresatypedefname”,g++-4.6通知:“warning:'typedef'在此声明中被忽略"。我无法确定标准中允许这样做的位